home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / c / flash-0.4.3.lha / flash-0.4.3 / Lib / character.h < prev    next >
C/C++ Source or Header  |  1999-02-21  |  2KB  |  89 lines

  1. /////////////////////////////////////////////////////////////
  2. // Flash Plugin and Player
  3. // Copyright (C) 1998 Olivier Debon
  4. // 
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU General Public License
  7. // as published by the Free Software Foundation; either version 2
  8. // of the License, or (at your option) any later version.
  9. // 
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14. // 
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, write to the Free Software
  17. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18. // 
  19. ///////////////////////////////////////////////////////////////
  20. #ifndef _CHARACTER_H_
  21. #define _CHARACTER_H_
  22. #include <stdio.h>
  23. #include "swf.h"
  24.  
  25. class Character;
  26.  
  27. #include "displaylist.h"
  28. #include "graphic.h"
  29.  
  30. enum ObjectType {
  31.     ShapeType,
  32.     TextType,
  33.     FontType,
  34.     SoundType,
  35.     BitmapType,
  36.     SpriteType,
  37.     ButtonType
  38. };
  39.  
  40. // Character definition
  41.  
  42. class Character {
  43.     long             tagId;
  44.     ObjectType         type;
  45.  
  46. public:
  47.     Character(ObjectType type, long tagId);
  48.  
  49.     virtual int         execute(GraphicDevice *, Matrix *, Cxform *);    // Display, play or whatever
  50.     virtual int         hasEventHandler();    // True if Character can handle events
  51.     virtual ActionRecord    *eventHandler(GraphicDevice *, FlashEvent *);
  52.     virtual void         getRegion(GraphicDevice *, Matrix *, unsigned char);
  53.     virtual void         reset();    // Reset internal state of object
  54. #ifdef DUMP
  55.     virtual void         dump(BitStream *main);
  56.  
  57.     int             saved;
  58. #endif
  59.  
  60.     long             getTagId();    // Return tagId
  61.     ObjectType         getType();
  62.     char            *getTypeString();
  63. };
  64.  
  65. struct sCharCell {
  66.     Character *elt;
  67.     struct sCharCell *next;
  68. };
  69.  
  70. class Dict {
  71.     struct sCharCell *head;
  72.     struct sCharCell *currentCell;    // Iteration variable for dictNextCharacter
  73.  
  74. public:
  75.     Dict();
  76.     ~Dict();
  77.  
  78.     void         addCharacter(Character *character);
  79.     Character    *getCharacter(long id);
  80.     void         dictRewind();
  81.     Character    *dictNextCharacter();
  82.  
  83. #ifdef DUMP
  84.     void         dictSetUnsaved();
  85. #endif
  86. };
  87.  
  88. #endif /* _CHARACTER_H_ */
  89.